package server.persistencia;

import com.mysql.jdbc.Connection;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.DriverManager;
import java.sql.SQLException;
import herramientas.Agente_Properties;
import java.util.logging.Level;
import java.util.logging.Logger;



public class Agente {
	protected static Agente instancia=null;
	protected Connection bd;
	protected Connection [] conexioness;
	protected String url;
	protected String pass; //Password del servidor Mysql
	protected String user; // Usuario del servidor Mysql
	protected Agente() throws SQLException {
		conexioness= new Connection [30];
		try{
                    Agente_Properties agentep= Agente_Properties.getAgenteProperties();
                    url= agentep.getProperty("agente.url");
                    pass= agentep.getProperty("agente.pass");
                    user= agentep.getProperty("agente.user");
                    agentep.cerrar();
                    Class.forName("com.mysql.jdbc.Driver");
                    for(int i=0; i<30; i++){
                            conexioness[i]= (Connection) DriverManager.getConnection(url, user, pass);
                    }
                    for(int i=0; i<30;i++){
                            conexioness[i].close();
                    }

                } catch (FileNotFoundException ex) {
                    Logger.getLogger(Agente.class.getName()).log(Level.SEVERE, null, ex);
                    } catch (IOException ex) {
                        Logger.getLogger(Agente.class.getName()).log(Level.SEVERE, null, ex);
                    } catch (ClassNotFoundException ecnfe) {
                                    // TODO Auto-generated catch block
			System.out.println(ecnfe);
		}
	}
	
	public static Agente getAgente() throws SQLException {
		if (instancia==null) {
			instancia=new Agente();
		}
		return instancia;
	}
	
	public Connection getConnection() throws SQLException{
		int i=0;
		if (instancia==null) {
			instancia=new Agente();
		}
		
		/*Buscamos una conexion cerrada*/
		while(!instancia.conexioness[i].isClosed()){
			i++;
		}
		instancia.conexioness[i]=(Connection) DriverManager.getConnection(instancia.url, instancia.user, instancia.pass);


		return instancia.conexioness[i];
	}

}
